package com.ybkj.o2o.zhuanxian.entity;

import com.ybkj.o2o.zhuanxian.common.CustomDateSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

import java.io.Serializable;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

public class Order extends Base implements Serializable {

  /**
   * 新单 .
   */
  public static final Integer ORDER_STATUS_NEW = 0;
  /**
   * 已派单 .
   */
  public static final Integer ORDER_STATUS_PAIDAN = 1;
  /**
   * 已接单 .
   */
  public static final Integer ORDER_STATUS_JIEDAN = 2;
  /**
   * 到达预约地 .
   */ 
  public static final Integer ORDER_STATUS_ARRIVE = 3;
  /**
   * 执行中 .
   */
  public static final Integer ORDER_STATUS_ZHIXING = 4;
  /**
   * 已完成 .
   */
  public static final Integer ORDER_STATUS_OK = 5;
  /**
   * 已销单 .
   */
  public static final Integer ORDER_STATUS_XIAODAN = 6;

  public static final String ORDER_TYPE_PHONE = "电话预约";
  public static final String ORDER_TYPE_APP = "APP预约";
  public static final String ORDER_TYPE_WEIXIN = "微信预约";
  public static final String ORDER_TYPE_WEB = "网站预约";
  public static final String ORDER_TYPE_BUDAN = "司机补单";

  /**
   * 城际拼车 .
   */
  public static final Integer TYPE_PINCHE = 0;
  /**
   * 城际包车 .
   */
  public static final Integer TYPE_BAOCHE = 1;
  /**
   * 城际寄货 .
   */
  public static final Integer TYPE_JIHUO = 2;

  private Integer orderType; // 订单类型

  private String orderNo; // 订单编号

  private Long passengerId; // 客户id

  private String passengerName; // 客户名称

  private String passengerPhone; // 客户电话

  private Long carId; // 车辆id

  private String carName; // 车辆名称

  private String carNumber; // 车辆编号

  private Long lineId; // 路线id

  private String lineName; // 路线name

  private Long channelId; // 渠道id

  private String channelName; // 渠道名称

  private Integer status; // 状态

  private Long employId; // 服务人员id

  private String employName; // 服务人员name

  private String employPhone; // 服务人员电话

  private Long companyId; // 公司id

  private String companyName; // 公司name

  private String appkey;

  private Boolean isClosed; // 是否关闭催单提示框

  private Boolean review; // 是否已评价

  private Long version; // 数据库操作版本

  private String cancelCause; // 取消原因

  private String payType; // 支付类型

  @JsonSerialize(using = CustomDateSerializer.class)
  private Date lasturge; // 最后一次催单时间

  private Integer startWait; // 开始等待分钟数

  private String startAddress; // 开始地址

  private Double startLat; // 开始经度

  private Double startLng; // 开始纬度

  private String endAddress; // 结束地址

  private Double endLat; // 结束经度

  private Double endLng; // 结束纬度

  private Long employCompanyId; // 服务人员公司id

  private Double employProfit; // 司机收入

  private Double companyProfit; // 公司收入

  private Double startPrice; // 起步费

  private Double mileage; // 实际行使公里

  private Integer runTime; // 实际执行分钟数

  private Double mileagePrice; // 实际的行驶里程费用

  private Double runTimePrice; // 实际的服务时间费用

  private Long couponId; // 优惠券id

  private Double couponMoney; // 优惠券抵消金额

  private Double budgetPay; // 预计费用

  private Double realPay; // 实际费用

  private Double cashMoney; // 现金

  private Double signMoney; // 签单金额

  private Double balanceMoney; // 余额金额

  @JsonSerialize(using = CustomDateSerializer.class)
  private Date serverTime; // 服务时间

  @JsonSerialize(using = CustomDateSerializer.class)
  private Date serverDeadTime; // 预约截止时间

  private String employNo; // 服务人员工号

  private String employPhoto; // 服务人员头像

  private Double employScore; // employScore

  private String startAddressDetail;// 预约地详细地址

  private String endAddressDetail;// 目的地详细地址

  private Double preStartPrice; // 预估开始时间

  private Double premileagePrice; // 预估里程金额

  private Double prerunTimePrice; // 预估时间金额

  private Integer pretravelTime; // 预估行驶金额

  private Double premileage;

  private Double alipayMoney; // 支付宝支付金额

  private Double weixinMoney; // 微信支付金额
  
  private Double unionpayMoney; // 银联支付金额

  private Double guoluMoney; // 过路费

  private Double yuanchengMoney; // 远程费

  private Boolean treatment; // 是否处理过

  private String prePayTypeDetail;// 前一步支付详情

  private String afterPayTypeDetail;// 后一步支付详情

  private Double otherMoney; // 其他费用

  private String showPhone;

  private String showName;

  private Double waitPrice;

  private Boolean firstOrderFree;

  @JsonSerialize(using = CustomDateSerializer.class)
  private Date finishTime;

  private Boolean baoxiao;

  private Double baoxiaoMoney;

  private String employMemo;

  @JsonSerialize(using = CustomDateSerializer.class)
  private Date treatmentDate;

  private Long areaId;

  private Long peopleNumber; // 乘坐人数

  private String memo;

  private List<OrderMemo> orderMemos;// 订单备注

  private OrderReview orderReview;// 评价备注

  private List<OrderStatus> orderStatuslist;// 订单状态

  private List<OrderStatus> statusList;// 订单的所有状态记录

  private String takeDeliveryName;// 收货人姓名

  private String takeDeliveryPhone;// 收货人电话

  private String anonymousNumber;//隐私通话匿名号码

  private Double justKilometres;//司机调价（公里数）

  private BigDecimal justMoney;//司机调价（金额）

  /**
   * 随机红包
   */
  private Double randomRedPacket;

  public Double getRandomRedPacket() {
    return randomRedPacket;
  }

  public void setRandomRedPacket(Double randomRedPacket) {
    this.randomRedPacket = randomRedPacket;
  }

  private Long countNum; //客户半年内订单数量(临时字段)

  public Long getCountNum() {
    return countNum;
  }

  public void setCountNum(Long countNum) {
    this.countNum = countNum;
  }

  public Double getJustKilometres() {
    return justKilometres;
  }

  public void setJustKilometres(Double justKilometres) {
    this.justKilometres = justKilometres;
  }

  public BigDecimal getJustMoney() {
    return justMoney;
  }

  public void setJustMoney(BigDecimal justMoney) {
    this.justMoney = justMoney;
  }

  public String getAnonymousNumber() {
    return anonymousNumber;
  }

  public void setAnonymousNumber(String anonymousNumber) {
    this.anonymousNumber = anonymousNumber;
  }

  private static final long serialVersionUID = 1L;

  public String getShowName() {
    return showName;
  }

  public void setShowName(String showName) {
    this.showName = showName;
  }

  public String getTakeDeliveryName() {
    return takeDeliveryName;
  }

  public void setTakeDeliveryName(String takeDeliveryName) {
    this.takeDeliveryName = takeDeliveryName;
  }

  public String getTakeDeliveryPhone() {
    return takeDeliveryPhone;
  }

  public void setTakeDeliveryPhone(String takeDeliveryPhone) {
    this.takeDeliveryPhone = takeDeliveryPhone;
  }

  public String getMemo() {
    return memo;
  }

  public void setMemo(String memo) {
    this.memo = memo;
  }

  public Long getPeopleNumber() {
    return peopleNumber;
  }

  public void setPeopleNumber(Long peopleNumber) {
    this.peopleNumber = peopleNumber;
  }

  public List<OrderMemo> getOrderMemos() {
    return orderMemos;
  }

  public void setOrderMemos(List<OrderMemo> orderMemos) {
    this.orderMemos = orderMemos;
  }

  public OrderReview getOrderReview() {
    return orderReview;
  }

  public void setOrderReview(OrderReview orderReview) {
    this.orderReview = orderReview;
  }

  public List<OrderStatus> getOrderStatuslist() {
    return orderStatuslist;
  }

  public void setOrderStatuslist(List<OrderStatus> orderStatuslist) {
    this.orderStatuslist = orderStatuslist;
  }

  public List<OrderStatus> getStatusList() {
    return statusList;
  }

  public void setStatusList(List<OrderStatus> statusList) {
    this.statusList = statusList;
  }

  public Long getAreaId() {
    return areaId;
  }

  public void setAreaId(Long areaId) {
    this.areaId = areaId;
  }

  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  public String getOrderNo() {
    return orderNo;
  }

  public void setOrderNo(String orderNo) {
    this.orderNo = orderNo == null ? null : orderNo.trim();
  }

  public Long getPassengerId() {
    return passengerId;
  }

  public void setPassengerId(Long passengerId) {
    this.passengerId = passengerId;
  }

  public String getPassengerName() {
    return passengerName;
  }

  public void setPassengerName(String passengerName) {
    this.passengerName = passengerName == null ? null : passengerName.trim();
  }

  public String getPassengerPhone() {
    return passengerPhone;
  }

  public void setPassengerPhone(String passengerPhone) {
    this.passengerPhone = passengerPhone == null ? null : passengerPhone.trim();
  }

  public Long getCarId() {
    return carId;
  }

  public void setCarId(Long carId) {
    this.carId = carId;
  }

  public String getCarName() {
    return carName;
  }

  public void setCarName(String carName) {
    this.carName = carName == null ? null : carName.trim();
  }

  public String getCarNumber() {
    return carNumber;
  }

  public void setCarNumber(String carNumber) {
    this.carNumber = carNumber == null ? null : carNumber.trim();
  }

  public Long getLineId() {
    return lineId;
  }

  public void setLineId(Long lineId) {
    this.lineId = lineId;
  }

  public String getLineName() {
    return lineName;
  }

  public void setLineName(String lineName) {
    this.lineName = lineName == null ? null : lineName.trim();
  }

  public Long getChannelId() {
    return channelId;
  }

  public void setChannelId(Long channelId) {
    this.channelId = channelId;
  }

  public String getChannelName() {
    return channelName;
  }

  public void setChannelName(String channelName) {
    this.channelName = channelName == null ? null : channelName.trim();
  }

  public Integer getStatus() {
    return status;
  }

  public void setStatus(Integer status) {
    this.status = status;
  }

  public Long getEmployId() {
    return employId;
  }

  public void setEmployId(Long employId) {
    this.employId = employId;
  }

  public String getEmployName() {
    return employName;
  }

  public void setEmployName(String employName) {
    this.employName = employName == null ? null : employName.trim();
  }

  public String getEmployPhone() {
    return employPhone;
  }

  public void setEmployPhone(String employPhone) {
    this.employPhone = employPhone == null ? null : employPhone.trim();
  }

  public Long getCompanyId() {
    return companyId;
  }

  public void setCompanyId(Long companyId) {
    this.companyId = companyId;
  }

  public String getCompanyName() {
    return companyName;
  }

  public void setCompanyName(String companyName) {
    this.companyName = companyName == null ? null : companyName.trim();
  }

  public String getAppkey() {
    return appkey;
  }

  public void setAppkey(String appkey) {
    this.appkey = appkey == null ? null : appkey.trim();
  }

  public Date getCreated() {
    return created;
  }

  public void setCreated(Date created) {
    this.created = created;
  }

  public Date getUpdated() {
    return updated;
  }

  public void setUpdated(Date updated) {
    this.updated = updated;
  }

  public Boolean getIsClosed() {
    return isClosed;
  }

  public void setIsClosed(Boolean isClosed) {
    this.isClosed = isClosed;
  }

  public Boolean getReview() {
    return review == null ? false : review;
  }

  public void setReview(Boolean review) {
    this.review = review;
  }

  public Long getVersion() {
    return version;
  }

  public void setVersion(Long version) {
    this.version = version;
  }

  public String getCancelCause() {
    return cancelCause;
  }

  public void setCancelCause(String cancelCause) {
    this.cancelCause = cancelCause == null ? null : cancelCause.trim();
  }

  public String getPayType() {
    return payType;
  }

  public void setPayType(String payType) {
    this.payType = payType == null ? null : payType.trim();
  }

  public Date getLasturge() {
    return lasturge;
  }

  public void setLasturge(Date lasturge) {
    this.lasturge = lasturge;
  }

  public Integer getStartWait() {
    return startWait;
  }

  public void setStartWait(Integer startWait) {
    this.startWait = startWait;
  }

  public String getStartAddress() {
    return startAddress;
  }

  public void setStartAddress(String startAddress) {
    this.startAddress = startAddress == null ? null : startAddress.trim();
  }

  public Double getStartLat() {
    return startLat;
  }

  public void setStartLat(Double startLat) {
    this.startLat = startLat;
  }

  public Double getStartLng() {
    return startLng;
  }

  public void setStartLng(Double startLng) {
    this.startLng = startLng;
  }

  public String getEndAddress() {
    return endAddress;
  }

  public void setEndAddress(String endAddress) {
    this.endAddress = endAddress == null ? null : endAddress.trim();
  }

  public Double getEndLat() {
    return endLat;
  }

  public void setEndLat(Double endLat) {
    this.endLat = endLat;
  }

  public Double getEndLng() {
    return endLng;
  }

  public void setEndLng(Double endLng) {
    this.endLng = endLng;
  }

  public Long getEmployCompanyId() {
    return employCompanyId;
  }

  public void setEmployCompanyId(Long employCompanyId) {
    this.employCompanyId = employCompanyId;
  }

  public Double getEmployProfit() {
    return employProfit;
  }

  public void setEmployProfit(Double employProfit) {
    this.employProfit = employProfit;
  }

  public Double getCompanyProfit() {
    return companyProfit;
  }

  public void setCompanyProfit(Double companyProfit) {
    this.companyProfit = companyProfit;
  }

  public Double getStartPrice() {
    return startPrice;
  }

  public void setStartPrice(Double startPrice) {
    this.startPrice = startPrice;
  }

  public Double getMileage() {
    return mileage;
  }

  public void setMileage(Double mileage) {
    this.mileage = mileage;
  }

  public Integer getRunTime() {
    return runTime;
  }

  public void setRunTime(Integer runTime) {
    this.runTime = runTime;
  }

  public Double getMileagePrice() {
    return mileagePrice;
  }

  public void setMileagePrice(Double mileagePrice) {
    this.mileagePrice = mileagePrice;
  }

  public Double getRunTimePrice() {
    return runTimePrice;
  }

  public void setRunTimePrice(Double runTimePrice) {
    this.runTimePrice = runTimePrice;
  }

  public Long getCouponId() {
    return couponId;
  }

  public void setCouponId(Long couponId) {
    this.couponId = couponId;
  }

  public Double getCouponMoney() {
    return couponMoney;
  }

  public void setCouponMoney(Double couponMoney) {
    this.couponMoney = couponMoney;
  }

  public Double getBudgetPay() {
    return budgetPay;
  }

  public void setBudgetPay(Double budgetPay) {
    this.budgetPay = budgetPay;
  }

  public Double getRealPay() {
    return realPay;
  }

  public void setRealPay(Double realPay) {
    this.realPay = realPay;
  }

  public Double getCashMoney() {
    return cashMoney;
  }

  public void setCashMoney(Double cashMoney) {
    this.cashMoney = cashMoney;
  }

  public Double getSignMoney() {
    return signMoney;
  }

  public void setSignMoney(Double signMoney) {
    this.signMoney = signMoney;
  }

  public Double getBalanceMoney() {
    return balanceMoney;
  }

  public void setBalanceMoney(Double balanceMoney) {
    this.balanceMoney = balanceMoney;
  }

  public Date getServerTime() {
    return serverTime;
  }

  public void setServerTime(Date serverTime) {
    this.serverTime = serverTime;
  }

  public Date getServerDeadTime() {
    return serverDeadTime;
  }

  public void setServerDeadTime(Date serverDeadTime) {
    this.serverDeadTime = serverDeadTime;
  }

  public String getEmployNo() {
    return employNo;
  }

  public void setEmployNo(String employNo) {
    this.employNo = employNo == null ? null : employNo.trim();
  }

  public String getEmployPhoto() {
    return employPhoto;
  }

  public void setEmployPhoto(String employPhoto) {
    this.employPhoto = employPhoto == null ? null : employPhoto.trim();
  }

  public Double getEmployScore() {
    return employScore;
  }

  public void setEmployScore(Double employScore) {
    this.employScore = employScore;
  }

  public String getStartAddressDetail() {
    return startAddressDetail;
  }

  public void setStartAddressDetail(String startAddressDetail) {
    this.startAddressDetail = startAddressDetail == null ? null : startAddressDetail.trim();
  }

  public String getEndAddressDetail() {
    return endAddressDetail;
  }

  public void setEndAddressDetail(String endAddressDetail) {
    this.endAddressDetail = endAddressDetail == null ? null : endAddressDetail.trim();
  }

  public Double getPreStartPrice() {
    return preStartPrice;
  }

  public void setPreStartPrice(Double preStartPrice) {
    this.preStartPrice = preStartPrice;
  }

  public Double getPremileagePrice() {
    return premileagePrice;
  }

  public void setPremileagePrice(Double premileagePrice) {
    this.premileagePrice = premileagePrice;
  }

  public Double getPrerunTimePrice() {
    return prerunTimePrice;
  }

  public void setPrerunTimePrice(Double prerunTimePrice) {
    this.prerunTimePrice = prerunTimePrice;
  }

  public Integer getPretravelTime() {
    return pretravelTime;
  }

  public void setPretravelTime(Integer pretravelTime) {
    this.pretravelTime = pretravelTime;
  }

  public Double getPremileage() {
    return premileage;
  }

  public void setPremileage(Double premileage) {
    this.premileage = premileage;
  }

  public Double getAlipayMoney() {
    return alipayMoney;
  }

  public void setAlipayMoney(Double alipayMoney) {
    this.alipayMoney = alipayMoney;
  }

  public Double getWeixinMoney() {
    return weixinMoney;
  }

  public void setWeixinMoney(Double weixinMoney) {
    this.weixinMoney = weixinMoney;
  }
  
  public Double getUnionpayMoney() {
    return unionpayMoney;
  }

  public void setUnionpayMoney(Double unionpayMoney) {
    this.unionpayMoney = unionpayMoney;
  }

  public Double getGuoluMoney() {
    return guoluMoney;
  }

  public void setGuoluMoney(Double guoluMoney) {
    this.guoluMoney = guoluMoney;
  }

  public Double getYuanchengMoney() {
    return yuanchengMoney;
  }

  public void setYuanchengMoney(Double yuanchengMoney) {
    this.yuanchengMoney = yuanchengMoney;
  }

  public Boolean getTreatment() {
    return treatment == null ? false : treatment;
  }

  public void setTreatment(Boolean treatment) {
    this.treatment = treatment;
  }

  public String getPrePayTypeDetail() {
    return prePayTypeDetail;
  }

  public void setPrePayTypeDetail(String prePayTypeDetail) {
    this.prePayTypeDetail = prePayTypeDetail == null ? null : prePayTypeDetail.trim();
  }

  public String getAfterPayTypeDetail() {
    return afterPayTypeDetail;
  }

  public void setAfterPayTypeDetail(String afterPayTypeDetail) {
    this.afterPayTypeDetail = afterPayTypeDetail == null ? null : afterPayTypeDetail.trim();
  }

  public Double getOtherMoney() {
    return otherMoney;
  }

  public void setOtherMoney(Double otherMoney) {
    this.otherMoney = otherMoney;
  }

  public String getShowPhone() {
    return showPhone;
  }

  public void setShowPhone(String showPhone) {
    this.showPhone = showPhone == null ? null : showPhone.trim();
  }

  public Double getWaitPrice() {
    return waitPrice;
  }

  public void setWaitPrice(Double waitPrice) {
    this.waitPrice = waitPrice;
  }

  public Boolean getFirstOrderFree() {
    return firstOrderFree == null ? false : firstOrderFree;
  }

  public void setFirstOrderFree(Boolean firstOrderFree) {
    this.firstOrderFree = firstOrderFree;
  }

  public Date getFinishTime() {
    return finishTime;
  }

  public void setFinishTime(Date finishTime) {
    this.finishTime = finishTime;
  }

  public Boolean getBaoxiao() {
    return baoxiao;
  }

  public void setBaoxiao(Boolean baoxiao) {
    this.baoxiao = baoxiao;
  }

  public Double getBaoxiaoMoney() {
    return baoxiaoMoney;
  }

  public void setBaoxiaoMoney(Double baoxiaoMoney) {
    this.baoxiaoMoney = baoxiaoMoney;
  }

  public String getEmployMemo() {
    return employMemo;
  }

  public void setEmployMemo(String employMemo) {
    this.employMemo = employMemo == null ? null : employMemo.trim();
  }

  public Date getTreatmentDate() {
    return treatmentDate;
  }

  public void setTreatmentDate(Date treatmentDate) {
    this.treatmentDate = treatmentDate;
  }

  public Integer getOrderType() {
    return orderType;
  }

  public void setOrderType(Integer orderType) {
    this.orderType = orderType;
  }
  
  /**
   * 预约 .
   */
  public boolean isYuyue() {
    if (null == serverDeadTime) {
      return false;
    }
    if (serverDeadTime.getTime() > new Date().getTime()) {
      return true;
    } else {
      return false;
    }
  }

  @Override
  public boolean equals(Object that) {
    if (this == that) {
      return true;
    }
    if (that == null) {
      return false;
    }
    if (getClass() != that.getClass()) {
      return false;
    }
    Order other = (Order) that;
    return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
        && (this.getOrderNo() == null ? other.getOrderNo() == null : this.getOrderNo().equals(
            other.getOrderNo()))
        && (this.getPassengerId() == null ? other.getPassengerId() == null : this.getPassengerId()
            .equals(other.getPassengerId()))
        && (this.getPassengerName() == null ? other.getPassengerName() == null : this
            .getPassengerName().equals(other.getPassengerName()))
        && (this.getPassengerPhone() == null ? other.getPassengerPhone() == null : this
            .getPassengerPhone().equals(other.getPassengerPhone()))
        && (this.getCarId() == null ? other.getCarId() == null : this.getCarId().equals(
            other.getCarId()))
        && (this.getCarName() == null ? other.getCarName() == null : this.getCarName().equals(
            other.getCarName()))
        && (this.getCarNumber() == null ? other.getCarNumber() == null : this.getCarNumber()
            .equals(other.getCarNumber()))
        && (this.getLineId() == null ? other.getLineId() == null : this.getLineId().equals(
            other.getLineId()))
        && (this.getLineName() == null ? other.getLineName() == null : this.getLineName().equals(
            other.getLineName()))
        && (this.getChannelId() == null ? other.getChannelId() == null : this.getChannelId()
            .equals(other.getChannelId()))
        && (this.getChannelName() == null ? other.getChannelName() == null : this.getChannelName()
            .equals(other.getChannelName()))
        && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(
            other.getStatus()))
        && (this.getEmployId() == null ? other.getEmployId() == null : this.getEmployId().equals(
            other.getEmployId()))
        && (this.getEmployName() == null ? other.getEmployName() == null : this.getEmployName()
            .equals(other.getEmployName()))
        && (this.getEmployPhone() == null ? other.getEmployPhone() == null : this.getEmployPhone()
            .equals(other.getEmployPhone()))
        && (this.getCompanyId() == null ? other.getCompanyId() == null : this.getCompanyId()
            .equals(other.getCompanyId()))
        && (this.getCompanyName() == null ? other.getCompanyName() == null : this.getCompanyName()
            .equals(other.getCompanyName()))
        && (this.getAppkey() == null ? other.getAppkey() == null : this.getAppkey().equals(
            other.getAppkey()))
        && (this.getCreated() == null ? other.getCreated() == null : this.getCreated().equals(
            other.getCreated()))
        && (this.getUpdated() == null ? other.getUpdated() == null : this.getUpdated().equals(
            other.getUpdated()))
        && (this.getIsClosed() == null ? other.getIsClosed() == null : this.getIsClosed().equals(
            other.getIsClosed()))
        && (this.getReview() == null ? other.getReview() == null : this.getReview().equals(
            other.getReview()))
        && (this.getVersion() == null ? other.getVersion() == null : this.getVersion().equals(
            other.getVersion()))
        && (this.getCancelCause() == null ? other.getCancelCause() == null : this.getCancelCause()
            .equals(other.getCancelCause()))
        && (this.getPayType() == null ? other.getPayType() == null : this.getPayType().equals(
            other.getPayType()))
        && (this.getLasturge() == null ? other.getLasturge() == null : this.getLasturge().equals(
            other.getLasturge()))
        && (this.getStartWait() == null ? other.getStartWait() == null : this.getStartWait()
            .equals(other.getStartWait()))
        && (this.getStartAddress() == null ? other.getStartAddress() == null : this
            .getStartAddress().equals(other.getStartAddress()))
        && (this.getStartLat() == null ? other.getStartLat() == null : this.getStartLat().equals(
            other.getStartLat()))
        && (this.getStartLng() == null ? other.getStartLng() == null : this.getStartLng().equals(
            other.getStartLng()))
        && (this.getEndAddress() == null ? other.getEndAddress() == null : this.getEndAddress()
            .equals(other.getEndAddress()))
        && (this.getEndLat() == null ? other.getEndLat() == null : this.getEndLat().equals(
            other.getEndLat()))
        && (this.getEndLng() == null ? other.getEndLng() == null : this.getEndLng().equals(
            other.getEndLng()))
        && (this.getEmployCompanyId() == null ? other.getEmployCompanyId() == null : this
            .getEmployCompanyId().equals(other.getEmployCompanyId()))
        && (this.getEmployProfit() == null ? other.getEmployProfit() == null : this
            .getEmployProfit().equals(other.getEmployProfit()))
        && (this.getCompanyProfit() == null ? other.getCompanyProfit() == null : this
            .getCompanyProfit().equals(other.getCompanyProfit()))
        && (this.getStartPrice() == null ? other.getStartPrice() == null : this.getStartPrice()
            .equals(other.getStartPrice()))
        && (this.getMileage() == null ? other.getMileage() == null : this.getMileage().equals(
            other.getMileage()))
        && (this.getRunTime() == null ? other.getRunTime() == null : this.getRunTime().equals(
            other.getRunTime()))
        && (this.getMileagePrice() == null ? other.getMileagePrice() == null : this
            .getMileagePrice().equals(other.getMileagePrice()))
        && (this.getRunTimePrice() == null ? other.getRunTimePrice() == null : this
            .getRunTimePrice().equals(other.getRunTimePrice()))
        && (this.getCouponId() == null ? other.getCouponId() == null : this.getCouponId().equals(
            other.getCouponId()))
        && (this.getCouponMoney() == null ? other.getCouponMoney() == null : this.getCouponMoney()
            .equals(other.getCouponMoney()))
        && (this.getBudgetPay() == null ? other.getBudgetPay() == null : this.getBudgetPay()
            .equals(other.getBudgetPay()))
        && (this.getRealPay() == null ? other.getRealPay() == null : this.getRealPay().equals(
            other.getRealPay()))
        && (this.getCashMoney() == null ? other.getCashMoney() == null : this.getCashMoney()
            .equals(other.getCashMoney()))
        && (this.getSignMoney() == null ? other.getSignMoney() == null : this.getSignMoney()
            .equals(other.getSignMoney()))
        && (this.getBalanceMoney() == null ? other.getBalanceMoney() == null : this
            .getBalanceMoney().equals(other.getBalanceMoney()))
        && (this.getServerTime() == null ? other.getServerTime() == null : this.getServerTime()
            .equals(other.getServerTime()))
        && (this.getEmployNo() == null ? other.getEmployNo() == null : this.getEmployNo().equals(
            other.getEmployNo()))
        && (this.getEmployPhoto() == null ? other.getEmployPhoto() == null : this.getEmployPhoto()
            .equals(other.getEmployPhoto()))
        && (this.getEmployScore() == null ? other.getEmployScore() == null : this.getEmployScore()
            .equals(other.getEmployScore()))
        && (this.getStartAddressDetail() == null ? other.getStartAddressDetail() == null : this
            .getStartAddressDetail().equals(other.getStartAddressDetail()))
        && (this.getEndAddressDetail() == null ? other.getEndAddressDetail() == null : this
            .getEndAddressDetail().equals(other.getEndAddressDetail()))
        && (this.getPreStartPrice() == null ? other.getPreStartPrice() == null : this
            .getPreStartPrice().equals(other.getPreStartPrice()))
        && (this.getPremileagePrice() == null ? other.getPremileagePrice() == null : this
            .getPremileagePrice().equals(other.getPremileagePrice()))
        && (this.getPrerunTimePrice() == null ? other.getPrerunTimePrice() == null : this
            .getPrerunTimePrice().equals(other.getPrerunTimePrice()))
        && (this.getPretravelTime() == null ? other.getPretravelTime() == null : this
            .getPretravelTime().equals(other.getPretravelTime()))
        && (this.getPremileage() == null ? other.getPremileage() == null : this.getPremileage()
            .equals(other.getPremileage()))
        && (this.getAlipayMoney() == null ? other.getAlipayMoney() == null : this.getAlipayMoney()
            .equals(other.getAlipayMoney()))
        && (this.getWeixinMoney() == null ? other.getWeixinMoney() == null : this.getWeixinMoney()
            .equals(other.getWeixinMoney()))
        && (this.getGuoluMoney() == null ? other.getGuoluMoney() == null : this.getGuoluMoney()
            .equals(other.getGuoluMoney()))
        && (this.getYuanchengMoney() == null ? other.getYuanchengMoney() == null : this
            .getYuanchengMoney().equals(other.getYuanchengMoney()))
        && (this.getTreatment() == null ? other.getTreatment() == null : this.getTreatment()
            .equals(other.getTreatment()))
        && (this.getPrePayTypeDetail() == null ? other.getPrePayTypeDetail() == null : this
            .getPrePayTypeDetail().equals(other.getPrePayTypeDetail()))
        && (this.getAfterPayTypeDetail() == null ? other.getAfterPayTypeDetail() == null : this
            .getAfterPayTypeDetail().equals(other.getAfterPayTypeDetail()))
        && (this.getOtherMoney() == null ? other.getOtherMoney() == null : this.getOtherMoney()
            .equals(other.getOtherMoney()))
        && (this.getShowPhone() == null ? other.getShowPhone() == null : this.getShowPhone()
            .equals(other.getShowPhone()))
        && (this.getWaitPrice() == null ? other.getWaitPrice() == null : this.getWaitPrice()
            .equals(other.getWaitPrice()))
        && (this.getFirstOrderFree() == null ? other.getFirstOrderFree() == null : this
            .getFirstOrderFree().equals(other.getFirstOrderFree()))
        && (this.getFinishTime() == null ? other.getFinishTime() == null : this.getFinishTime()
            .equals(other.getFinishTime()))
        && (this.getBaoxiao() == null ? other.getBaoxiao() == null : this.getBaoxiao().equals(
            other.getBaoxiao()))
        && (this.getBaoxiaoMoney() == null ? other.getBaoxiaoMoney() == null : this
            .getBaoxiaoMoney().equals(other.getBaoxiaoMoney()))
        && (this.getEmployMemo() == null ? other.getEmployMemo() == null : this.getEmployMemo()
            .equals(other.getEmployMemo()))
        && (this.getTreatmentDate() == null ? other.getTreatmentDate() == null : this
            .getTreatmentDate().equals(other.getTreatmentDate()))
        && (this.getOrderType() == null ? other.getOrderType() == null : this.getOrderType()
            .equals(other.getOrderType()))
        && (this.getPeopleNumber() == null ? other.getPeopleNumber() == null : this
            .getPeopleNumber().equals(other.getPeopleNumber()))
        && (this.getMemo() == null ? other.getMemo() == null : this.getMemo().equals(
            other.getMemo()));
  }

  @Override
  public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
    result = prime * result + ((getOrderNo() == null) ? 0 : getOrderNo().hashCode());
    result = prime * result + ((getPassengerId() == null) ? 0 : getPassengerId().hashCode());
    result = prime * result + ((getPassengerName() == null) ? 0 : getPassengerName().hashCode());
    result = prime * result + ((getPassengerPhone() == null) ? 0 : getPassengerPhone().hashCode());
    result = prime * result + ((getCarId() == null) ? 0 : getCarId().hashCode());
    result = prime * result + ((getCarName() == null) ? 0 : getCarName().hashCode());
    result = prime * result + ((getCarNumber() == null) ? 0 : getCarNumber().hashCode());
    result = prime * result + ((getLineId() == null) ? 0 : getLineId().hashCode());
    result = prime * result + ((getLineName() == null) ? 0 : getLineName().hashCode());
    result = prime * result + ((getChannelId() == null) ? 0 : getChannelId().hashCode());
    result = prime * result + ((getChannelName() == null) ? 0 : getChannelName().hashCode());
    result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
    result = prime * result + ((getEmployId() == null) ? 0 : getEmployId().hashCode());
    result = prime * result + ((getEmployName() == null) ? 0 : getEmployName().hashCode());
    result = prime * result + ((getEmployPhone() == null) ? 0 : getEmployPhone().hashCode());
    result = prime * result + ((getCompanyId() == null) ? 0 : getCompanyId().hashCode());
    result = prime * result + ((getCompanyName() == null) ? 0 : getCompanyName().hashCode());
    result = prime * result + ((getAppkey() == null) ? 0 : getAppkey().hashCode());
    result = prime * result + ((getCreated() == null) ? 0 : getCreated().hashCode());
    result = prime * result + ((getUpdated() == null) ? 0 : getUpdated().hashCode());
    result = prime * result + ((getIsClosed() == null) ? 0 : getIsClosed().hashCode());
    result = prime * result + ((getReview() == null) ? 0 : getReview().hashCode());
    result = prime * result + ((getVersion() == null) ? 0 : getVersion().hashCode());
    result = prime * result + ((getCancelCause() == null) ? 0 : getCancelCause().hashCode());
    result = prime * result + ((getPayType() == null) ? 0 : getPayType().hashCode());
    result = prime * result + ((getLasturge() == null) ? 0 : getLasturge().hashCode());
    result = prime * result + ((getStartWait() == null) ? 0 : getStartWait().hashCode());
    result = prime * result + ((getStartAddress() == null) ? 0 : getStartAddress().hashCode());
    result = prime * result + ((getStartLat() == null) ? 0 : getStartLat().hashCode());
    result = prime * result + ((getStartLng() == null) ? 0 : getStartLng().hashCode());
    result = prime * result + ((getEndAddress() == null) ? 0 : getEndAddress().hashCode());
    result = prime * result + ((getEndLat() == null) ? 0 : getEndLat().hashCode());
    result = prime * result + ((getEndLng() == null) ? 0 : getEndLng().hashCode());
    result =
        prime * result + ((getEmployCompanyId() == null) ? 0 : getEmployCompanyId().hashCode());
    result = prime * result + ((getEmployProfit() == null) ? 0 : getEmployProfit().hashCode());
    result = prime * result + ((getCompanyProfit() == null) ? 0 : getCompanyProfit().hashCode());
    result = prime * result + ((getStartPrice() == null) ? 0 : getStartPrice().hashCode());
    result = prime * result + ((getMileage() == null) ? 0 : getMileage().hashCode());
    result = prime * result + ((getRunTime() == null) ? 0 : getRunTime().hashCode());
    result = prime * result + ((getMileagePrice() == null) ? 0 : getMileagePrice().hashCode());
    result = prime * result + ((getRunTimePrice() == null) ? 0 : getRunTimePrice().hashCode());
    result = prime * result + ((getCouponId() == null) ? 0 : getCouponId().hashCode());
    result = prime * result + ((getCouponMoney() == null) ? 0 : getCouponMoney().hashCode());
    result = prime * result + ((getBudgetPay() == null) ? 0 : getBudgetPay().hashCode());
    result = prime * result + ((getRealPay() == null) ? 0 : getRealPay().hashCode());
    result = prime * result + ((getCashMoney() == null) ? 0 : getCashMoney().hashCode());
    result = prime * result + ((getSignMoney() == null) ? 0 : getSignMoney().hashCode());
    result = prime * result + ((getBalanceMoney() == null) ? 0 : getBalanceMoney().hashCode());
    result = prime * result + ((getServerTime() == null) ? 0 : getServerTime().hashCode());
    result = prime * result + ((getEmployNo() == null) ? 0 : getEmployNo().hashCode());
    result = prime * result + ((getEmployPhoto() == null) ? 0 : getEmployPhoto().hashCode());
    result = prime * result + ((getEmployScore() == null) ? 0 : getEmployScore().hashCode());
    result =
        prime * result
            + ((getStartAddressDetail() == null) ? 0 : getStartAddressDetail().hashCode());
    result =
        prime * result + ((getEndAddressDetail() == null) ? 0 : getEndAddressDetail().hashCode());
    result = prime * result + ((getPreStartPrice() == null) ? 0 : getPreStartPrice().hashCode());
    result =
        prime * result + ((getPremileagePrice() == null) ? 0 : getPremileagePrice().hashCode());
    result =
        prime * result + ((getPrerunTimePrice() == null) ? 0 : getPrerunTimePrice().hashCode());
    result = prime * result + ((getPretravelTime() == null) ? 0 : getPretravelTime().hashCode());
    result = prime * result + ((getPremileage() == null) ? 0 : getPremileage().hashCode());
    result = prime * result + ((getAlipayMoney() == null) ? 0 : getAlipayMoney().hashCode());
    result = prime * result + ((getWeixinMoney() == null) ? 0 : getWeixinMoney().hashCode());
    result = prime * result + ((getGuoluMoney() == null) ? 0 : getGuoluMoney().hashCode());
    result = prime * result + ((getYuanchengMoney() == null) ? 0 : getYuanchengMoney().hashCode());
    result = prime * result + ((getTreatment() == null) ? 0 : getTreatment().hashCode());
    result =
        prime * result + ((getPrePayTypeDetail() == null) ? 0 : getPrePayTypeDetail().hashCode());
    result =
        prime * result
            + ((getAfterPayTypeDetail() == null) ? 0 : getAfterPayTypeDetail().hashCode());
    result = prime * result + ((getOtherMoney() == null) ? 0 : getOtherMoney().hashCode());
    result = prime * result + ((getShowPhone() == null) ? 0 : getShowPhone().hashCode());
    result = prime * result + ((getWaitPrice() == null) ? 0 : getWaitPrice().hashCode());
    result = prime * result + ((getFirstOrderFree() == null) ? 0 : getFirstOrderFree().hashCode());
    result = prime * result + ((getFinishTime() == null) ? 0 : getFinishTime().hashCode());
    result = prime * result + ((getBaoxiao() == null) ? 0 : getBaoxiao().hashCode());
    result = prime * result + ((getBaoxiaoMoney() == null) ? 0 : getBaoxiaoMoney().hashCode());
    result = prime * result + ((getEmployMemo() == null) ? 0 : getEmployMemo().hashCode());
    result = prime * result + ((getTreatmentDate() == null) ? 0 : getTreatmentDate().hashCode());
    result = prime * result + ((getOrderType() == null) ? 0 : getOrderType().hashCode());
    result = prime * result + ((getPeopleNumber() == null) ? 0 : getPeopleNumber().hashCode());
    result = prime * result + ((getMemo() == null) ? 0 : getMemo().hashCode());
    return result;
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append(getClass().getSimpleName());
    sb.append(" [");
    sb.append("Hash = ").append(hashCode());
    sb.append(", id=").append(id);
    sb.append(", orderNo=").append(orderNo);
    sb.append(", passengerId=").append(passengerId);
    sb.append(", passengerName=").append(passengerName);
    sb.append(", passengerPhone=").append(passengerPhone);
    sb.append(", carId=").append(carId);
    sb.append(", carName=").append(carName);
    sb.append(", carNumber=").append(carNumber);
    sb.append(", lineId=").append(lineId);
    sb.append(", lineName=").append(lineName);
    sb.append(", channelId=").append(channelId);
    sb.append(", channelName=").append(channelName);
    sb.append(", status=").append(status);
    sb.append(", employId=").append(employId);
    sb.append(", employName=").append(employName);
    sb.append(", employPhone=").append(employPhone);
    sb.append(", companyId=").append(companyId);
    sb.append(", companyName=").append(companyName);
    sb.append(", appkey=").append(appkey);
    sb.append(", created=").append(created);
    sb.append(", updated=").append(updated);
    sb.append(", isClosed=").append(isClosed);
    sb.append(", review=").append(review);
    sb.append(", version=").append(version);
    sb.append(", cancelCause=").append(cancelCause);
    sb.append(", payType=").append(payType);
    sb.append(", lasturge=").append(lasturge);
    sb.append(", startWait=").append(startWait);
    sb.append(", startAddress=").append(startAddress);
    sb.append(", startLat=").append(startLat);
    sb.append(", startLng=").append(startLng);
    sb.append(", endAddress=").append(endAddress);
    sb.append(", endLat=").append(endLat);
    sb.append(", endLng=").append(endLng);
    sb.append(", employCompanyId=").append(employCompanyId);
    sb.append(", employProfit=").append(employProfit);
    sb.append(", companyProfit=").append(companyProfit);
    sb.append(", startPrice=").append(startPrice);
    sb.append(", mileage=").append(mileage);
    sb.append(", runTime=").append(runTime);
    sb.append(", mileagePrice=").append(mileagePrice);
    sb.append(", runTimePrice=").append(runTimePrice);
    sb.append(", couponId=").append(couponId);
    sb.append(", couponMoney=").append(couponMoney);
    sb.append(", budgetPay=").append(budgetPay);
    sb.append(", realPay=").append(realPay);
    sb.append(", cashMoney=").append(cashMoney);
    sb.append(", signMoney=").append(signMoney);
    sb.append(", balanceMoney=").append(balanceMoney);
    sb.append(", serverTime=").append(serverTime);
    sb.append(", employNo=").append(employNo);
    sb.append(", employPhoto=").append(employPhoto);
    sb.append(", employScore=").append(employScore);
    sb.append(", startAddressDetail=").append(startAddressDetail);
    sb.append(", endAddressDetail=").append(endAddressDetail);
    sb.append(", preStartPrice=").append(preStartPrice);
    sb.append(", premileagePrice=").append(premileagePrice);
    sb.append(", prerunTimePrice=").append(prerunTimePrice);
    sb.append(", pretravelTime=").append(pretravelTime);
    sb.append(", premileage=").append(premileage);
    sb.append(", alipayMoney=").append(alipayMoney);
    sb.append(", weixinMoney=").append(weixinMoney);
    sb.append(", guoluMoney=").append(guoluMoney);
    sb.append(", yuanchengMoney=").append(yuanchengMoney);
    sb.append(", treatment=").append(treatment);
    sb.append(", prePayTypeDetail=").append(prePayTypeDetail);
    sb.append(", afterPayTypeDetail=").append(afterPayTypeDetail);
    sb.append(", otherMoney=").append(otherMoney);
    sb.append(", showPhone=").append(showPhone);
    sb.append(", waitPrice=").append(waitPrice);
    sb.append(", firstOrderFree=").append(firstOrderFree);
    sb.append(", finishTime=").append(finishTime);
    sb.append(", baoxiao=").append(baoxiao);
    sb.append(", baoxiaoMoney=").append(baoxiaoMoney);
    sb.append(", employMemo=").append(employMemo);
    sb.append(", treatmentDate=").append(treatmentDate);
    sb.append(", orderType=").append(orderType);
    sb.append(", peopleNumber=").append(peopleNumber);
    sb.append(", memo=").append(memo);
    sb.append(", serialVersionUID=").append(serialVersionUID);
    sb.append("]");
    return sb.toString();
  }
}
